home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1997-01-29 | 8.3 KB | 297 lines |
- 10 'SERISECT - Series-Section Balun - 31 JAN 94 rev. 28 SEP 96
- 20 IF EX$=""THEN EX$="EXIT"
- 30 IF PROG$=""THEN GO$=EX$ ELSE GO$=PROG$
- 40 COMMON EX$,PROG$
- 50 CLS:KEY OFF
- 60 COLOR 7,0,1
- 70 UL$=STRING$(80,205)
- 80 ER$=STRING$(80,32)
- 90 U1$="####.###"
- 100 U2$="##.###"
- 110 U3$="###.###"
- 120 Q$=CHR$(34)
- 130 PI=3.14159
- 140 DIM C$(50,7) 'coax specs.
- 150 '
- 160 '.....start
- 170 CLS
- 180 OPEN"I",1,"\data\coaxial.fil"
- 190 FOR Z=1 TO 50:FOR Y=1 TO 7
- 200 INPUT#1,Z$
- 210 IF RIGHT$(Z$,5)=" Foam"THEN Z$=LEFT$(Z$,LEN(Z$)-5)+"(f)"
- 220 IF RIGHT$(Z$,6)="Belden"THEN Z$=LEFT$(Z$,4)
- 230 C$(Z,Y)=Z$
- 240 NEXT Y:NEXT Z
- 250 CLOSE
- 260 '
- 270 FOR Z=1 TO 44
- 280 C$(Z,2)=C$(Z,5)
- 290 C$(Z,3)=STR$(1/SQR(VAL(C$(Z,3))))
- 300 NEXT Z
- 310 '
- 320 COLOR 15,2
- 330 PRINT " SERIES-SECTION MATCHING TRANSFORMER";
- 340 PRINT TAB(57);"by George Murphy VE3ERP ";
- 350 COLOR 1,0:PRINT STRING$(80,223);
- 360 COLOR 7,0
- 370 T=22:GOSUB 2520 'print diagram
- 380 LOCATE 16
- 390 PRINT UL$;
- 400 PRINT " Press number in < > to choose standard units of measure:"
- 410 PRINT UL$;
- 420 PRINT " < 1 > Metric"
- 430 PRINT " < 2 > U.S.A./Imperial"
- 440 PRINT UL$;
- 450 PRINT " or press < 0 > to EXIT...."
- 460 Z$=INKEY$:IF Z$=""THEN 460
- 470 IF Z$="0"THEN CLS:CHAIN GO$
- 480 IF Z$="1"THEN UM=0.3048:UM$=" metres ":GOTO 510
- 490 IF Z$="2"THEN UM=1:UM$=" feet ":GOTO 510
- 500 GOTO 460
- 510 VIEW PRINT 17 TO 24:CLS:VIEW PRINT:LOCATE 17
- 520 PRINT TAB(9);
- 530 PRINT "As an aid in selecting your main feed line and an appropriate"
- 540 PRINT TAB(9);
- 550 PRINT "matching section, a table of characteristics of commonly used"
- 560 PRINT TAB(9);
- 570 PRINT "coaxial transmission lines follows."
- 580 PRINT
- 590 PRINT TAB(9);
- 600 PRINT "Press number in < > to indicate how you want this table sorted:"
- 610 PRINT UL$;
- 620 PRINT " < 1 > Sort by type (e.g. RG-58 etc.)"
- 630 PRINT " < 2 > Sort by characteristic impedance and velocity factor";
- 640 Z$=INKEY$:IF Z$=""THEN 640
- 650 IF Z$="1"THEN 690
- 660 IF Z$="2"THEN GOSUB 2700:GOTO 690
- 670 GOTO 640
- 680 '
- 690 '.....select coax for main feed line
- 700 VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
- 710 GOSUB 2210 'print coax list
- 720 COLOR 15,2
- 730 INPUT " ENTER: No. from above table to select coax for MAIN FEED LINE ";MF
- 740 COLOR 7,0
- 750 IF MF>=1 AND MF<=44 THEN 780
- 760 BEEP:LOCATE CSRLIN-1:PRINT ER$;:LOCATE CSRLIN-1:GOTO 730
- 770 '
- 780 '.....select coax for matching section
- 790 VIEW PRINT 23 TO 24:CLS:VIEW PRINT:LOCATE 23
- 800 COLOR 15,4
- 810 INPUT " ENTER: No. from above table to select coax for MATCHING SECTION ";MS
- 820 COLOR 7,0
- 830 IF MS>=1 AND MS<=43 THEN 860
- 840 BEEP:LOCATE CSRLIN-1:PRINT ER$;:LOCATE CSRLIN-1:GOTO 800
- 850 '
- 860 '.....impedances
- 870 X$=C$(MF,1)
- 880 IF RIGHT$(X$,1)=")"THEN X$=LEFT$(X$,LEN(X$)-3)+" foam":C$(MF,1)=X$
- 890 X$=C$(MS,1)
- 900 IF RIGHT$(X$,1)=")"THEN X$=LEFT$(X$,LEN(X$)-3)+" foam":C$(MS,1)=X$
- 910 Z0=VAL(C$(MF,2)) 'impedance of main feed line
- 920 Z1=VAL(C$(MS,2)) 'impedance of matching section
- 930 VIEW PRINT 2 TO 24:CLS:VIEW PRINT:LOCATE 2
- 940 COLOR 1,0:PRINT STRING$(80,223);
- 950 COLOR 7,0
- 960 '
- 970 INPUT " ENTER: Frequency of operation............(MHz)";F
- 980 IF F=0 THEN LOCATE CSRLIN-1:PRINT ER$;:LOCATE CSRLIN-1:GOTO 970
- 990 WFT=984/F 'wavelength in feet
- 1000 LOCATE CSRLIN-1:PRINT STRING$(7,32)
- 1010 LOCATE CSRLIN-1,42:PRINT "......";USING U1$;F;:PRINT " MHz"
- 1020 '
- 1030 INPUT " ENTER: Antenna load impedance...........(ohms)";RL
- 1040 IF RL=0 THEN LOCATE CSRLIN-1:PRINT ER$;:LOCATE CSRLIN-1:GOTO 1140
- 1050 LOCATE CSRLIN-1:PRINT STRING$(7,32)
- 1060 LOCATE CSRLIN-1,42:PRINT "......";USING U1$;RL;:PRINT " -"
- 1070 '
- 1080 PRINT " Impedance of main feed line............";USING U1$;Z0;
- 1090 PRINT " - (";C$(MF,1);")"
- 1100 '
- 1110 PRINT " Impedance of matching section..........";USING U1$;Z1;
- 1120 PRINT " - (";C$(MS,1);")"
- 1130 '
- 1140 '.....normalize impedances
- 1150 ZL=RL+JXL 'note: JXL normally does not apply to Amateur antennas
- 1160 N=Z1/Z0
- 1170 R=RL/Z0
- 1180 X=XL/Z0
- 1190 SWR=1/R:IF SWR<1 THEN SWR=R
- 1200 PRINT " SWR....................................";USING "####.#";SWR;
- 1210 PRINT ":1"
- 1220 '
- 1230 '.....calculation
- 1240 LOZ=Z0/SQR(SWR)
- 1250 HIZ=Z0*SQR(SWR)
- 1260 IF Z1<LOZ OR Z1>HIZ THEN 1430
- 1270 '
- 1280 '.....inappropriate impedances
- 1290 BEEP:PRINT
- 1300 COLOR 14,4
- 1310 LOCATE CSRLIN,8
- 1320 PRINT " Matching section impedance must be either more than";USING U1$;HIZ;
- 1330 PRINT " - "
- 1340 LOCATE CSRLIN,8
- 1350 PRINT " or less than";USING U1$;LOZ;
- 1360 PRINT " - "
- 1370 COLOR 7,0
- 1380 PRINT
- 1390 PRINT TAB(9);"Press any key to start over........."
- 1400 IF INKEY$=""THEN 1400
- 1410 GOTO 160 'start
- 1420 '
- 1430 VF=VAL(C$(MS,3)) 'velocity factor
- 1440 IF RL=Z0 THEN L1=0:L2=0:GOTO 1590
- 1450 EQ1=(R-1)^2+X^2
- 1460 EQ2=R*(N-1/N)^2
- 1470 EQ3=(R-1)^2-X^2
- 1480 '
- 1490 B=SQR(EQ1/(EQ2-EQ3))
- 1500 IF SGN(B)=-1 THEN B=B*-1
- 1510 L2=ATN(B)*180/PI
- 1520 EQ4=(N-R/N)*B+X
- 1530 EQ5=R+X*N*B-1
- 1540 '
- 1550 A=EQ4/EQ5
- 1560 L1=ATN(A)*180/PI
- 1570 IF SGN(L1)=-1 THEN L1=L1+180
- 1580 '
- 1590 W=WFT*VF
- 1600 L1FT=L1*W/360
- 1610 L2FT=L2*W/360
- 1620 DIF=LEN(C$(MS,1))-LEN(C$(MF,1))
- 1630 '
- 1640 COLOR 15,2:LOCATE CSRLIN,7
- 1650 PRINT " Line from antenna to matching section..";USING U1$;L1FT*UM;
- 1660 PRINT UM$;" of ";C$(MF,1);
- 1670 IF SGN(DIF)=1 THEN PRINT STRING$(DIF+1," ")ELSE PRINT " "
- 1680 '
- 1690 LOCATE CSRLIN,7
- 1700 PRINT " Matching section.......................";USING U1$;L2FT*UM;
- 1710 PRINT UM$;" of ";C$(MS,1);
- 1720 IF SGN(DIF)=-1 THEN PRINT STRING$(ABS(DIF)+1," ")ELSE PRINT " "
- 1730 COLOR 7,0
- 1740 PRINT UL$;
- 1750 '
- 1760 T=22:LOCATE 11:GOSUB 2520 'print diagram
- 1770 COLOR 0,7
- 1780 LOCATE 13,T+6:PRINT USING "###.#";Z0;:PRINT " -"
- 1790 LOCATE 17,T+1:PRINT USING "###.#";Z1;:PRINT " -"
- 1800 LOCATE 21,T+6:PRINT USING "###.#";Z0;:PRINT " -"
- 1810 '
- 1820 COLOR 0,7
- 1830 LOCATE 13,T+25:PRINT "(";C$(MF,1);")"
- 1840 COLOR 7,0
- 1850 LOCATE 13,T+38:PRINT "DEFSNGSOUND";USING U3$;L1FT;:PRINT " ft."
- 1860 LOCATE 14,T+40:PRINT USING U3$;L1FT*0.3048;:PRINT " m."
- 1870 '
- 1880 COLOR 0,7
- 1890 LOCATE 17,T+29:PRINT "(";LEFT$(C$(MS,1),7);")"
- 1900 COLOR 7,0
- 1910 LOCATE 17,T+38:PRINT "DEFSNGSOUND";USING U3$;L2FT;:PRINT " ft."
- 1920 LOCATE 18,T+40:PRINT USING U3$;L2FT*0.3048;:PRINT " m."
- 1930 '
- 1940 COLOR 0,7
- 1950 LOCATE 21,T+25:PRINT "(";C$(MF,1);")"
- 1960 COLOR 7,0
- 1970 LOCATE 24:PRINT UL$;
- 1980 '
- 1990 '.....end
- 2000 GOSUB 2840
- 2010 GOTO 160 'start
- 2020 END
- 2030 '
- 2040 '.....coaxial cable specs.
- 2050 DATA RG-6,75,.75, RG-8X,52,.75, RG-8,52,.66
- 2060 DATA RG-8(f),50,.8, RG-8A,52,.66, RG-9,51,.66
- 2070 DATA RG-9A,51,.66, RG-9B,50,.66, RG-11,75,.66
- 2080 DATA RG-11(f),75,.8, RG-11A,75,.66, RG-12,75,.66
- 2090 DATA RG-12A,75,.66, RG-17,52,.66, RG-17A,52,.66
- 2100 DATA RG-55,53.5,.66, RG-55A,50,.66, RG-55B,53.5,.66
- 2110 DATA RG-58,53.5,.66, RG-58(f),53.5,.79, RG-58A,53.5,.66
- 2120 DATA RG-58B,53.5,.66, RG-58C,50,.66, RG-59,73,.66
- 2130 DATA RG-59(f),75,.79, RG-59A,73,.66, RG-62,93,.86
- 2140 DATA RG-62A,93,.86, RG-62B,93,.86, RG-133A,95,.86
- 2150 DATA RG-141,50,.7, RG-141A,50,.7, RG-142,50,.7
- 2160 DATA RG-142A,50,.7, RG-142B,50,.7, RG-174,50,.66
- 2170 DATA RG-213,50,.66, RG-214,50,.66, RG-215,50,.66
- 2180 DATA RG-216,75,.66, RG-223,50,.66, 9913,50,.84
- 2190 DATA 9914,50,.78, -,-,-, -,-,-
- 2200 '
- 2210 '.....print coax list
- 2220 VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
- 2230 '
- 2240 LOCATE CSRLIN-1,27:PRINT "CALL":LOCATE CSRLIN-1,54:PRINT "CALL"
- 2250 PRINT " No. Type Z(-) V.F. CALL";
- 2260 PRINT " No. Type Z(-) V.F. CALL";
- 2270 PRINT " No. Type Z(-) V.F."
- 2280 PRINT UL$;
- 2290 LOCATE CSRLIN-1,27:PRINT "INSTR":LOCATE CSRLIN-1,54:PRINT "INSTR"
- 2300 '
- 2310 FOR Z=1 TO 15
- 2320 IF LEN(STR$(Z))=3 THEN PRINT STR$(Z)+":";ELSE PRINT " "+STR$(Z)+":";
- 2330 PRINT TAB(6);C$(Z,1);TAB(15);USING "##.#";VAL(C$(Z,2));
- 2340 PRINT TAB(21);USING ".####";VAL(C$(Z,3));
- 2350 PRINT TAB(27);"CALL"+STR$(Z+15)+":";
- 2360 PRINT TAB(33);C$(Z+15,1);TAB(42);USING "##.#";VAL(C$(Z+15,2));
- 2370 PRINT TAB(48)USING ".####";VAL(C$(Z+15,3));
- 2380 PRINT TAB(54);"CALL";
- 2390 IF Z=15 THEN PRINT "":GOTO 2430
- 2400 PRINT STR$(Z+30)+":";
- 2410 PRINT TAB(60);C$(Z+30,1);TAB(69);USING "##.#";VAL(C$(Z+30,2));
- 2420 PRINT TAB(75)USING ".####";VAL(C$(Z+30,3))
- 2430 NEXT Z
- 2440 '
- 2450 PRINT UL$;
- 2460 LOCATE CSRLIN-1,27:PRINT "STEP":LOCATE CSRLIN-1,54:PRINT "STEP"
- 2470 PRINT " NOTE: (f) denotes foam dielectric, Z = Impedance, ";
- 2480 PRINT "V.F.= Velocity Factor"
- 2490 PRINT UL$;
- 2500 RETURN
- 2510 '
- 2520 '......diagram
- 2530 COLOR 0,7
- 2540 LOCATE CSRLIN,T:PRINT " SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDCOLORVARPTRSOUNDSOUNDSOUNDSOUNDSOUNDantennaSOUNDSOUNDSOUNDSOUNDSOUND "
- 2550 LOCATE CSRLIN,T:PRINT " CALLCALL "
- 2560 LOCATE CSRLIN,T:PRINT " Coaxial FeedCALLCALLLine "
- 2570 LOCATE CSRLIN,T:PRINT " CALLCALL "
- 2580 LOCATE CSRLIN,T:PRINT " VARPTR'CLSCOLOR "
- 2590 LOCATE CSRLIN,T:PRINT " CALL CALL "
- 2600 LOCATE CSRLIN,T:PRINT " Coaxial MatchingCALL CALLSection "
- 2610 LOCATE CSRLIN,T:PRINT " CALL CALL "
- 2620 LOCATE CSRLIN,T:PRINT " CLSCOLORVARPTR' "
- 2630 LOCATE CSRLIN,T:PRINT " CALLCALL "
- 2640 LOCATE CSRLIN,T:PRINT " Coaxial MainCALLCALLLine "
- 2650 LOCATE CSRLIN,T:PRINT " CALLCALL "
- 2660 LOCATE CSRLIN,T:PRINT " from station "
- 2670 COLOR 7,0
- 2680 RETURN
- 2690 '
- 2700 '.....sort ******START SORT******
- 2710 SN=43
- 2720 SM=SN
- 2730 SM=INT(SM/2):IF SM=0 THEN 2820
- 2740 SK=SN-SM:SJ=1
- 2750 SI=SJ
- 2760 SL=SI+SM
- 2770 IF C$(SI,2)+C$(SI,3)+C$(SI,1)<=C$(SL,2)+C$(SL,3)+C$(SL,1)THEN 2800
- 2780 FOR Z=1 TO 3:SWAP C$(SI,Z),C$(SL,Z):NEXT Z
- 2790 SI=SI-SM:IF SI>0 THEN 2760
- 2800 SJ=SJ+1:IF SJ>SK THEN 2730
- 2810 GOTO 2750
- 2820 RETURN '******SORT COMPLETED******
- 2830 '
- 2840 'HARDCOPY
- 2850 GOSUB 2960:LOCATE 25,2:COLOR 14,6
- 2860 PRINT " Press 1 to print screen, 2 to print screen & ";
- 2870 PRINT "advance paper, or 3 to continue.";:COLOR 7,0
- 2880 Z$=INKEY$:IF Z$="3"THEN GOSUB 2960:RETURN
- 2890 IF Z$="1"OR Z$="2"THEN GOSUB 2960:GOTO 2910
- 2900 GOTO 2880
- 2910 FOR QX=1 TO 24:FOR QY=1 TO 80
- 2920 LPRINT CHR$(SCREEN(QX,QY));
- 2930 NEXT QY:NEXT QX
- 2940 IF Z$="2"THEN LPRINT CHR$(12)
- 2950 GOTO 2850
- 2960 LOCATE 25,1:PRINT STRING$(80,32);:RETURN
-